1. Field of the Invention
This invention relates to computer systems, and more particularly to the generation of documentation for software.
2. Description of the Related Art
Applications are often implemented as part of commercial and/or non-commercial business solutions for an enterprise. For example, a company may leverage use of an enterprise application that includes various databases distributed across multiple computers. The code for an enterprise application may include hundreds of thousands of lines written by numerous programmers over a period of many months or years. The cost to develop and support such applications in terms of manpower can be tremendous.
Software that is well documented is easier to use, debug, modify, and maintain than undocumented or poorly documented applications. Therefore, the lifecycle costs associated with large applications can be reduced by insuring that proper documentation is produced. One type of software documentation includes comments that are written into the source code usually by the developer. These comments typically describe the detailed function of a small portion of the code that the developer deems to be not intuitively obvious. Another level of documentation is usually written separately from the source code in the form of a functional and/or architectural specification. This level of documentation may describe the function of the entire application as a whole and that of the major component modules. Typically, all levels of software application documentation are incomplete, haphazardly written, or non-existent due to schedule or budgetary constraints and/or a lack of enthusiasm for writing documentation on the part of the developers.
Software developers may leverage existing libraries of code to reduce their total time spent in development and to reduce the frequency of defects in their applications and components. In order to realize the benefits of leveraging these libraries, software developers must first understand how to interface with them, making accurate and up-to-date library documentation an important part of the software development process. To maximize productivity gains, it is also important for such library documentation to be indexed and easy to browse by the software developer. Developers may have different preferences for the final formatting of the library documentation, so that they can access the information in a manner best suited to their needs.
Developers of software libraries may wish to include such documentation in their libraries. Typically, information that is included in such software documentation comes from a variety of sources, each of which may be in a different format. These sources usually include the library source code itself and may additionally include configuration files, defect reports and other sources. It is both time-consuming and error-prone for component library developers to extract such information and to produce documentation in the required format by hand.